package String;


import java.util.Arrays;

/**
 * File Name: ReverseWords
 * Date: 2020/3/24 17:39
 * Author: liangling
 * Description
 * 1.输入一个英文句子，翻转句子中单词的顺序，但单词内字符的顺序不变。为简单起见，
 * 标点符号和普通字母一样处理。例如输入字符串"I am a student. "，则输出"student. a am I"。
 * 2.输入字符串可以在前面或者后面包含多余的空格，但是反转后的字符不能包括
 * 3.如果两个单词间有多余的空格，将反转后单词间的空格减少到只含一个。
 */
public class ReverseWords {

    public static void main(String[] args) {
        String s = "  hello world!  ";
       String d = ReverseWords(s);
        System.out.println("反转后结果是："+d);
    }

    private static String ReverseWords(String s){
        if(s.length()==1 && !"".equals(s)){
            return s;
        }
       //去掉首尾空格，再以字符串空格截取字符串
        String [] strings = s.trim().split(" ");
        StringBuilder stringBuilder = new StringBuilder();
        for (int i=strings.length-1;i>=0;i--){
            if(!"".equals(strings[i])|| null!=strings[i]){
                stringBuilder.append(strings[i]);
                if(i!=0){
                    stringBuilder.append(" ");
                }
            }

        }
        return stringBuilder+"";

    }


}
